# 列表各种操作
# 列表分片
listaaa = [1,2,3,4,5,6,7,8,9,10]
print(listaaa[1:])
# 分片操作不包含后一个索引，即不包含索引为8的数据
print(listaaa[1:8])
print(listaaa[1:8:2])
# 列表倒序:方法1
print(listaaa[::-1])
# 列表倒序:方法2
listaaa.reverse()
print(listaaa)

# 判断字符/字符串是否在列表中
perssions = 'rw'
print('w' in perssions)

database = [['albert','1234'],['smith','3333'],['jones','0908']]
# username = input('User name:')
# pin = input('PIN code:')
if ['smith','3333'] in database:
	print('Access granted')

# 将字符串转成列表
a =list('Hello')
print(a)
# 将字符组成的列表转成字符串
print(''.join(a))
# 将字符串反转
print(''.join(list('Hello World!!!')[::-1]))  #!!!dlroW olleH

# int类型的列表不能转成字符串，会报错
# print(''.join(listaaa))

print('-----list operate----')
# 1.列表：元素赋值
listaaa[0] = 2
print(listaaa)

# 2.列表：元素删除
del listaaa[0] #[2, 3, 4, 5, 6, 7, 8, 9, 10]
print(listaaa)

# 3.列表：分片赋值  
# 3.1 用于替换元素
name = list('Perl')
name[2:] = list('ar')
print(name) #['P', 'e', 'a', 'r']
# 3.2 插入新的元素
numbers = [1,5]
numbers[1:1] = [2,3,4]
print(numbers) #[1, 2, 3, 4, 5]
# 3.3 用于删除元素
name[2:] = []
print(name) #['P', 'e']


print('----list method----')
lista=[1,2,3]
# 1.append():追加新的对象,直接修改原来的列表
lista.append(4)
print(lista)
# 2.count():统计某个元素在列表中出现的此时
print(['to','be','or','not','to','be'].count('to'))
# 3.extend():在列表末尾一次性追加另一个序列中的多个值,直接修改原来的列表lista
lista.extend(listaaa)
print(lista)
# 使用+不会变更原本的lista
print(lista+listaaa)
print(lista)

# 4.index()：返回列表中某个值的第一个匹配项索引位置
words = ['to','be','or','not','to','be']
print(words.index('be'))
#当没有找到时会报错
# print(words.index('what'))

# 5.insert():将对象插入到列表中
numbers = [1,2,3,4,5,6]
numbers.insert(3,'four')
print(numbers)

# 6.pop()方法会移除列表的一个元素（默认是最后一个），并返回该元素的值
x = [1,2,3]
print(x.pop())
print(x)

# 7.remove()：移除列表中某个值的第一个匹配项
x = ['to','be','or','not','to','be']
x.remove('be')
print(x)

# 8.reverse():将列表职工的元素反向存放
x = [1,2,3]
x.reverse()
print(x)

# 9.sort():用于在原位置对列表进行排序，会改变原来的列表
x = [4,6,2,7,9]
x.sort()
print(x)
# 如果不想要改变原有的列表
# 方法一：将原来的列表copy赋值给另一个变量
x = [4,6,2,7,9]
y = x[:] # 这里不能直接将y=x,这样x/y都指向同一个列表
y.sort()
print(x)
print(y)
# 方法二：sorted()
x = [4,6,2,7,9]
y = sorted(x)
print(x)
print('sorted:',y)


# 10.高级排序
x = ['aardvark','abalone','acme','add','aerate']
x.sort(reverse=True)
print(x)
x.sort(key=len)
print(x)


L = [4, 2, 25, 7777777, 100, 3, 77777777, 77777777, 77777777, 77777777]
print(sorted(L))